Ngôn ngữ lập trình PureBasic

Đặc điểm

PureBasic là một trình biên dịch BASIC 32 bit và 64 bit. Mã có tính di động cao. Các hệ thống được hỗ trợ hiện tại là Windows, Linux, macOS. Phiên bản AmigaOS hiện tại là di sản và mã nguồn mở. Trình biên dịch tạo ra các tệp thực thi rất nhanh, được tối ưu hóa cao và cú pháp của PureBasic rất đơn giản và dễ hiểu.[2] Nó có thể biên dịch các ứng dụng giao diện điều khiển,[3] các ứng dụng GUI,[4] và các tệp DLL.[5]

Ví dụ Hello World

Dòng lệnh đơn giản sau của mã PureBasic sẽ tạo một tệp thực thi x86 độc lập (4,5 KB (4,608 byte) trên phiên bản Windows) hiển thị hộp thông báo có văn bản " Hello World ".

 MessageRequester("Message Box", "Hello World")

Và biến thể sau của cùng một mã nguồn, thay vào đó sử dụng một lệnh Windows API trên dòng lệnh mà không cần khai báo hoặc tham chiếu bên ngoài khác, sẽ tạo một tệp thực thi x86 độc lập 2.0 KB (2.048 byte) cho Windows.

 MessageBox_(0, "Hello World", "Message Box", 0)

Sau đây là một phiên bản console của ví dụ Hello World.

 OpenConsole()        ; Mở cửa sổ bảng điều khiển. Print("Hello, World!")

Lập trình thủ tục

PureBasic là một ngôn ngữ "BASIC thế hệ thứ hai", với các điều kiện có cấu trúc và các vòng lặp, và lập trình hướng thủ tục được hỗ trợ. Người dùng không bắt buộc phải sử dụng các thủ tục, do đó, một lập trình viên có thể chọn kiểu mã hóa bao gồm Goto, Gosub Label và Return.

Dưới đây là một thủ tục mẫu để sắp xếp một mảng, mặc dù SortArray bây giờ là một hàm dựng sẵn của PureBasic.

 Procedure bubbleSort(Array a(1))   Protected i, itemCount, hasChanged     itemCount = ArraySize(a())   Repeat     hasChanged = #False     itemCount - 1     For i = 0 To itemCount       If a(i) > a(i + 1)         Swap a(i), a(i + 1)         hasChanged = #True       EndIf      Next     Until hasChanged = #False EndProcedure

Dưới đây là một chương trình mẫu hiển thị một trình soạn thảo văn bản khá lớn với hai mục menu.

;Create Window:OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "Simple Text Editor", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget);Add 2 menus:CreateMenu(0, WindowID(0))MenuItem(1, "&OK")MenuItem(2, "&Cancel");Add Editor:EditorGadget(0, 0, 0, 0, 0)SetGadgetFont(0, LoadFont(0, "Courier New", 10));Process window messages until closed:Repeat    Select WaitWindowEvent()    Case #PB_Event_Menu        Select EventMenu()        Case 1: MessageRequester("OK clicked directly or with '&' mnemonic.", GetGadgetText(0))        Case 2: Break        EndSelect    Case #PB_Event_SizeWindow: ResizeGadget(0, 0, 0, WindowWidth(0, #PB_Window_InnerCoordinate), WindowHeight(0, #PB_Window_InnerCoordinate))    Case #PB_Event_CloseWindow: Break    EndSelectForEver

Lưu ý rằng PureBasic không ngắt chuỗi bằng các dấu ngoặc kép vì vậy chúng phải được nối với Chr(34).

Lập trình hướng đối tượng

Fred, nhà phát triển của PureBasic, đã tuyên bố rằng PureBasic sẽ không bao giờ hướng đối tượng.[6] Tuy nhiên, nhiều người dùng đã tạo ra các hệ thống hỗ trợ hướng đối tượng.[7][8][9]

Tài liệu tham khảo

WikiPedia: PureBasic http://www.codeproject.com/Articles/853831/PureBas... http://www.purebasic.com http://www.purebasic.com/documentation/console/ind... http://www.purebasic.com/documentation/gadget/inde... http://www.purebasic.com/documentation/reference/d... http://www.purebasic.com/faq.php http://www.purebasic.com/index.php http://www.purebasic.fr/english/viewtopic.php?p=40... http://www.purebasic.fr/english/viewtopic.php?t=30... http://www.purebasic.fr/english/viewtopic.php?t=30...